home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
edit
/
xvidoc.zip
/
SUMMARY.MS
< prev
next >
Wrap
Text File
|
1992-07-28
|
22KB
|
747 lines
.\"========== Macro definitions
.\"========== Three-column output
.de c3
.ta 1.5i 3i 4.5i
\\$1 \\$2 \\$3
.br
..
.\"========== Put string in boldface & surround with quotes
.de qB
\%\*Q\fB\\$1\fP\*U\\$2
..
.\"========== Redefine NH to avoid widowing
.rn NH Nh
.de NH
.if \\$1=1 .ne 1.5i
.ne 1i
.Nh \\$1 \\$2
..
.\"========== End of macros
.\"========== 11 on 13 looks so much better than 10 on 12
.nr PS 11
.nr VS 13
.ps 11
.vs 13p
.nr HM 0.9i
.nr FM 0.9i
.if n .nr PO 0.5i
.if n .nr LL 6.5i
.\"========== Turn hyphenation off, and make sure it stays off
.nh
.rm hy
.\"========== Headers in italics helps them to stand out from the text
.OH '\fISummary of Differences between Vi and Xvi\fP''\fI%\fP'
.EH '\fI%\fP''\fISummary of Differences between Vi and Xvi\fP'
.OF '\fI25th September 1992\fP''\fIPage %\fP'
.EF '\fIPage %\fP''\fI25th September 1992\fP'
.\"===================== End of header; start of document ====================
.TL
Summary of Differences between Vi and Xvi
.AU
Chris Downey
John Downey
.AB no
\fBXvi\fP (pronounced \fIecks-vee-eye\fP)
is a free, portable, multi-window implementation of the popular
.UX
editor \fBvi\fP.
.LP
This document summarises the differences between the ``real'' \fBvi\fP
and \fBxvi\fP.
These differences are divided into three groups:
\fIunimplemented features\fP,
\fIdifferences\fP
and \fIenhancements\fP,
and each of these is described in the following sections.
.AE
.\"===========================================================================
.NH 1
Unimplemented Features
.\"---------------------------------------------------------------------------
.KS
.NH 2
Ex Mode
.LP
The main area in which \fBxvi\fP is lacking is \fBvi\fP's
.B ex
mode,
which is not implemented at all (and neither are \fBedit\fP, \fBe\fP,
and \fBopen\fP modes).
However, many of the \fBex\fP commands are available in \fBxvi\fP as
colon commands;
the colon commands that have not been implemented are mostly those which offer
the same functionality as other commands in \fBvi\fP mode.
.KE
.KS
.LP
Specifically, the following \fBex\fP commands are not implemented,
and probably never will be within \fBxvi\fP:
.DS
.B
.c3 insert undo ex
.c3 change open |
.c3 append z
.R
.DE
.KE
.KS
.nh
.rm hy
while these \fBex\fP commands, although not currently implemented,
may be added as colon commands at some time in the future:
.DS
.B
.c3 abbreviate recover write>>
.c3 unabbreviate join
.R
.DE
.KE
.\"---------------------------------------------------------------------------
.NH 2
Vi commands
.LP
The following \fBvi\fP mode commands are not implemented,
although there is no real reason why they shouldn't be:
.DS
.B
.c3 U =
.R
.DE
.KS
while this one is inappropriate in the context of \fBxvi\fP,
since there is no
.B ex
mode:
.DS
.B Q
.DE
.KE
.\"---------------------------------------------------------------------------
.KS
.NH 2
Parameters
.LP
The following parameters have not been implemented,
and probably won't be:
.DS
.B
.c3 ada lisp redraw
.c3 adapath mesg slowopen
.c3 autoprint modeline term
.c3 beautify open terse
.c3 directory optimize ttytype
.c3 edcompatible prompt window
.c3 hardtabs
.R
.DE
.KE
.KS
while these parameters may well be implemented at some point:
.DS
.B
.c3 autowrite scroll warn
.c3 errorbells sourceany writeany
.R
.DE
.KE
.\"---------------------------------------------------------------------------
.NH 2
Miscellaneous
.LP
Some features of certain commands do not work as they should.
Specifically:
.IP \(bu 5
Repeat counts before insertions don't work.
.IP \(bu 5
Appending to named buffers is not yet implemented.
.IP \(bu 5
Typing \fB^Q\fP in input mode does not mean the same as \fB^V\fP;
it just inserts a `^Q', assuming it gets as far as the editor at all.
.IP \(bu 5
Typing \fB^W\fP in insert mode does not back up one word as in \fBvi\fP.
.IP \(bu 5
It is not possible to interrupt the editor while it is
performing certain operations.
If you start off a big global command, you have to wait for it to finish.
.IP \(bu 5
Flags and counts after colon commands are not supported.
.KS
.IP \(bu 5
It is not possible to read the output of a system command using
.DS
\fB:r\ !\fP\fIcommand\fP
.DE
or to write into a command using
.DS
\fB:w\ !\fP\fIcommand\fP
.DE
.KE
.IP \(bu 5
The \fB:substitute\fP command does not support splitting of lines.
.IP \(bu 5
Regular expressions, although implemented (see later for more details),
do not support the \fB~\fP character;
also, the \fB\e\^u\fP and \fB\e\^l\fP escape sequences are not supported on
the right-hand side of a substitute replacement pattern.
.IP \(bu 5
The \fB:global\fP command only supports the commands [\fBlps&~d\fP].
.IP \(bu 5
\fBUndo\fP does not work properly when applied to macros (either
.B @
or
\fB:map\fP); it should undo all the changes made by the macro, but in
fact only the last command within the macro is undone.
.\"===========================================================================
.NH 1
Enhancements
.LP
The following extensions are available in \fBxvi\fP.
.\"---------------------------------------------------------------------------
.KS
.NH 2
Parameter Handling
.LP
\fBXvi\fP supports 5 types of parameter:
as well as \fBvi\fP's
\fInumeric\fP,
\fIstring\fP and
\fIboolean\fP,
it also has
\fIenumerated\fP and
\fIlist\fP types.
The former is used for e.g. \fBformat\fP and \fBregextype\fP,
while the latter is currently only used for \fBtags\fP.
The advantage of the \fIenumerated\fP type is that if you try
to set an illegal value, the set of correct values will be displayed,
which is very useful if you have forgotten what the values may be.
(Try \fB:set preserve\fP to see an example of this.)
.KE
.\"---------------------------------------------------------------------------
.NH 2
Windows
.LP
\fBXvi\fP supports multiple \fIbuffers\fP and \fIwindows\fP.
A \fIbuffer\fP is the object which holds a file in memory,
while a \fIwindow\fP is an area of the screen which shows part of a buffer.
Note that every window references a buffer, even if no file is being edited.
.LP
The following commands are available for operating on buffers and windows:
.IP \fB:buffer\fP 10
create a new buffer in a new window; can be followed
by a filename, which will be edited in the new buffer.
.IP \fB:split\fP 10
create a new window onto the current buffer by
splitting the current window in half.
The two resulting windows are similar to
.I viewports
on to a single editing buffer,
in that changes made in one window are reflected in the other one.
.IP \fB:close\fP 10
close the current window; will also close the buffer
if this is the last window onto it.
.IP "\fB:x / ZZ\fP" 10
close only the current window.
If the window is the only one onto the buffer,
the buffer will be closed as well,
writing it first if it is modified.
Hence, for a single window, this command does the
same as in \fBvi\fP.
.IP \fBg\fP 10
move to the next window.
This is normally the window directly below the current one
on the screen, or the top window on the screen if the current
window is the bottom one.
.IP \fB^W\fP 10
increase the size of the current window (may be
given a numeric prefix, default is one line).
.IP \fB^T\fP 10
decrease the size of the current window (may be
given a numeric prefix, default is one line).
.IP \fB^O\fP 10
make the current window as large as possible.
.IP \fB^]\fP 10
as for \fBvi\fP, but creates a new buffer window
if appropriate (and if \fBautosplit\fP allows).
.LP
Note that the \fB:quit\fP command quits out of the editor,
not out of a window.
The \fB:close\fP command is thus the equivalent of \fB:quit\fP for windows.
There is no equivalent of \fB:x\fP or \fBZZ\fP for the whole editor;
these have been hijacked for operations on windows.
.LP
Also the numeric \fBautosplit\fP parameter specifies the maximum number
of buffer windows that will be created automatically whenever you
either edit more than one file, or use tags to edit a different file.
.LP
Undo works per buffer, as do marks; yank/put and redo (the \fB.\fP command)
work over all buffers, i.e. you can delete from one buffer and put
the text into a different buffer.
.LP
The \fBminrows\fP parameter specifies the minimum number of rows
to which a window may be shrunk,